home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Visual Basic Source Code
/
Visual Basic Source Code.iso
/
vbsource
/
optivc32
/
vdmath.h
< prev
next >
Wrap
C/C++ Source or Header
|
1999-03-06
|
26KB
|
463 lines
/* VDmath.h
vector management functions:
math functions performed on each individual element of an
array or vector of the data type "double"; real numbers
Copyright (c) 1996-1999 by Martin Sander
All Rights Reserved.
*/
#ifndef __VDMATH_H
#define __VDMATH_H
#ifndef __VDSTD_H
#include <VDstd.h>
#endif
#ifdef __cplusplus
extern "C" {
#endif
/************************** Rounding **********************************/
int __vf VD_round( dVector Y, dVector X, ui size );
int __vf VD_roundtoBI( biVector Y, dVector X, ui size );
int __vf VD_roundtoSI( siVector Y, dVector X, ui size );
int __vf VD_roundtoI( iVector Y, dVector X, ui size );
int __vf VD_roundtoLI( liVector Y, dVector X, ui size );
int __vf VD_roundtoQI( qiVector Y, dVector X, ui size );
int __vf VD_roundtoUB( ubVector Y, dVector X, ui size );
int __vf VD_roundtoUS( usVector Y, dVector X, ui size );
int __vf VD_roundtoU( uVector Y, dVector X, ui size );
int __vf VD_roundtoUL( ulVector Y, dVector X, ui size );
int __vf VD_floor( dVector Y, dVector X, ui size );
int __vf VD_floortoBI( biVector Y, dVector X, ui size );
int __vf VD_floortoSI( siVector Y, dVector X, ui size );
int __vf VD_floortoI( iVector Y, dVector X, ui size );
int __vf VD_floortoLI( liVector Y, dVector X, ui size );
int __vf VD_floortoQI( qiVector Y, dVector X, ui size );
int __vf VD_floortoUB( ubVector Y, dVector X, ui size );
int __vf VD_floortoUS( usVector Y, dVector X, ui size );
int __vf VD_floortoU( uVector Y, dVector X, ui size );
int __vf VD_floortoUL( ulVector Y, dVector X, ui size );
int __vf VD_ceil( dVector Y, dVector X, ui size );
int __vf VD_ceiltoBI( biVector Y, dVector X, ui size );
int __vf VD_ceiltoSI( siVector Y, dVector X, ui size );
int __vf VD_ceiltoI( iVector Y, dVector X, ui size );
int __vf VD_ceiltoLI( liVector Y, dVector X, ui size );
int __vf VD_ceiltoQI( qiVector Y, dVector X, ui size );
int __vf VD_ceiltoUB( ubVector Y, dVector X, ui size );
int __vf VD_ceiltoUS( usVector Y, dVector X, ui size );
int __vf VD_ceiltoU( uVector Y, dVector X, ui size );
int __vf VD_ceiltoUL( ulVector Y, dVector X, ui size );
int __vf VD_chop( dVector Y, dVector X, ui size );
int __vf VD_choptoBI( biVector Y, dVector X, ui size );
int __vf VD_choptoSI( siVector Y, dVector X, ui size );
int __vf VD_choptoI( iVector Y, dVector X, ui size );
int __vf VD_choptoLI( liVector Y, dVector X, ui size );
int __vf VD_choptoQI( qiVector Y, dVector X, ui size );
int __vf VD_choptoUB( ubVector Y, dVector X, ui size );
int __vf VD_choptoUS( usVector Y, dVector X, ui size );
int __vf VD_choptoU( uVector Y, dVector X, ui size );
int __vf VD_choptoUL( ulVector Y, dVector X, ui size );
#define VD_trunc VD_chop
#define VD_trunctoBI VD_choptoBI
#define VD_trunctoSI VD_choptoSI
#define VD_trunctoI VD_choptoI
#define VD_trunctoLI VD_choptoLI
#define VD_trunctoQI VD_choptoQI
#define VD_trunctoUB VD_choptoUB
#define VD_trunctoUS VD_choptoUS
#define VD_trunctoU VD_choptoU
#define VD_trunctoUL VD_choptoUL
#if defined V_HUGE
#define VD_roundtoUI VD_roundtoUL
#define VD_floortoUI VD_floortoUL
#define VD_ceiltoUI VD_ceiltoUL
#define VD_choptoUI VD_choptoUL
#define VD_trunctoUI VD_trunctoUL
#else
#define VD_roundtoUI VD_roundtoU
#define VD_floortoUI VD_floortoU
#define VD_ceiltoUI VD_ceiltoU
#define VD_choptoUI VD_choptoU
#define VD_trunctoUI VD_trunctoU
#endif
/************************ Comparisons ***************************/
void __vf VD_cmp0( dVector Y, dVector X, ui size );
ui __vf VD_cmp_eq0( dVector Y, dVector X, ui size );
ui __vf VD_cmp_ne0( dVector Y, dVector X, ui size );
ui __vf VD_cmp_le0( dVector Y, dVector X, ui size );
ui __vf VD_cmp_lt0( dVector Y, dVector X, ui size );
ui __vf VD_cmp_ge0( dVector Y, dVector X, ui size );
ui __vf VD_cmp_gt0( dVector Y, dVector X, ui size );
ui __vf VD_cmp_eq0ind( uiVector Ind, dVector X, ui size );
ui __vf VD_cmp_ne0ind( uiVector Ind, dVector X, ui size );
ui __vf VD_cmp_le0ind( uiVector Ind, dVector X, ui size );
ui __vf VD_cmp_lt0ind( uiVector Ind, dVector X, ui size );
ui __vf VD_cmp_ge0ind( uiVector Ind, dVector X, ui size );
ui __vf VD_cmp_gt0ind( uiVector Ind, dVector X, ui size );
void __vf VD_cmpC( dVector Y, dVector X, ui size, double C );
ui __vf VD_cmp_eqC( dVector Y, dVector X, ui size, double C );
ui __vf VD_cmp_neC( dVector Y, dVector X, ui size, double C );
ui __vf VD_cmp_leC( dVector Y, dVector X, ui size, double C );
ui __vf VD_cmp_ltC( dVector Y, dVector X, ui size, double C );
ui __vf VD_cmp_geC( dVector Y, dVector X, ui size, double C );
ui __vf VD_cmp_gtC( dVector Y, dVector X, ui size, double C );
ui __vf VD_cmp_eqCind( uiVector Ind, dVector X, ui size, double C );
ui __vf VD_cmp_neCind( uiVector Ind, dVector X, ui size, double C );
ui __vf VD_cmp_leCind( uiVector Ind, dVector X, ui size, double C );
ui __vf VD_cmp_ltCind( uiVector Ind, dVector X, ui size, double C );
ui __vf VD_cmp_geCind( uiVector Ind, dVector X, ui size, double C );
ui __vf VD_cmp_gtCind( uiVector Ind, dVector X, ui size, double C );
void __vf VD_cmpV( dVector Z, dVector X, dVector Y, ui size );
ui __vf VD_cmp_eqV( dVector Z, dVector X, dVector Y, ui size );
ui __vf VD_cmp_neV( dVector Z, dVector X, dVector Y, ui size );
ui __vf VD_cmp_leV( dVector Z, dVector X, dVector Y, ui size );
ui __vf VD_cmp_ltV( dVector Z, dVector X, dVector Y, ui size );
ui __vf VD_cmp_geV( dVector Z, dVector X, dVector Y, ui size );
ui __vf VD_cmp_gtV( dVector Z, dVector X, dVector Y, ui size );
ui __vf VD_cmp_eqVind( uiVector Ind, dVector X, dVector Y, ui size );
ui __vf VD_cmp_neVind( uiVector Ind, dVector X, dVector Y, ui size );
ui __vf VD_cmp_leVind( uiVector Ind, dVector X, dVector Y, ui size );
ui __vf VD_cmp_ltVind( uiVector Ind, dVector X, dVector Y, ui size );
ui __vf VD_cmp_geVind( uiVector Ind, dVector X, dVector Y, ui size );
ui __vf VD_cmp_gtVind( uiVector Ind, dVector X, dVector Y, ui size );
ui __vf VD_cmp_inclrange0C( dVector Y, dVector X, ui size, double C );
ui __vf VD_cmp_exclrange0C( dVector Y, dVector X, ui size, double C );
ui __vf VD_cmp_inclrangeCC( dVector Y, dVector X, ui size, double CLo, double CHi );
ui __vf VD_cmp_exclrangeCC( dVector Y, dVector X, ui size, double CLo, double CHi );
ui __vf VD_cmp_inclrange0Cind( uiVector Ind, dVector X, ui size, double C );
ui __vf VD_cmp_exclrange0Cind( uiVector Ind, dVector X, ui size, double C );
ui __vf VD_cmp_inclrangeCCind( uiVector Ind, dVector X, ui size, double CLo, double CHi );
ui __vf VD_cmp_exclrangeCCind( uiVector Ind, dVector X, ui size, double CLo, double CHi );
/******************** Standard Arithmetics ***************************/
void __vf VD_equC( dVector X, ui size, double C );
void __vf VD_equV( dVector Y, dVector X, ui size );
void __vf VDx_equV( dVector Y, dVector X, ui size, double A, double B );
void __vf VD_addC( dVector Y, dVector X, ui size, double C );
void __vf VD_subC( dVector Y, dVector X, ui size, double C );
void __vf VD_subrC( dVector Y, dVector X, ui size, double C );
void __vf VD_mulC( dVector Y, dVector X, ui size, double C );
void __vf VD_divC( dVector Y, dVector X, ui size, double C );
void __vf VD_divrC( dVector Y, dVector X, ui size, double C );
void __vf VDx_divrC( dVector Y, dVector X, ui size, double A, double B, double C );
void __vf VD_addV( dVector Z, dVector X, dVector Y, ui size );
void __vf VD_subV( dVector Z, dVector X, dVector Y, ui size );
void __vf VD_subrV( dVector Z, dVector X, dVector Y, ui size );
void __vf VD_mulV( dVector Z, dVector X, dVector Y, ui size );
void __v